package JAVAcollectionsanddatastructures.List;

//是普通的数据类型能面向对象
//引入这8种基本数据类型的包装类(尤其注意Integer，Character)，在使用过程中，会将类似 int 这样的值包装到一个对象中去。
public class WrapperClass {
    public static void main1(String[] args) {
        String str = "123";
        int ret = Integer.valueOf(str);
        System.out.println(ret);//将字符串“123”转换成123
    }

    public static void main2(String[] args) {
        //隐式的
        Integer a = 123;//装箱/装包  简单类型->包装类类型
        int b = a;//拆箱/拆包   包装类类型->简单类型
        System.out.println(a+" "+b);

        //显式的
        Integer a2 = Integer.valueOf(123);
        Integer a3 = new Integer(123);

        int b2 = a2.intValue();
    }

    //面试题：为什么第二次不为True ？
    //解决思路：从Integer.valueOf出发会发现里面设置了一个缓存数组cache（取值范围为-128到127），一旦超出范围就会new一个新对象！地址改变
    public static void main(String[] args) {
        Integer a = 123;
        Integer b = 123;
        System.out.println(a==b);//结果为True

        Integer a1 = 129;
        Integer b1 = 129;
        System.out.println(a1==b1);//结果为false
    }
}
